#include "player.hh"

Player::Player() {
}

Player::~Player() {
}

std::string Player::getName() {
  return name_;
}

std::vector<Item> Player::getVectorItem() {
  return listItem_;
}

std::vector<int> Player::getPastEvents() {
  return pastEvents_;
}

void Player::setName(const std::string name) {
  name_ = name;
}

bool Player::hasItemId(int idItem) {
  for (unsigned int i = 0; i < listItem_.size(); i++) {
    if (listItem_[i].getId() == idItem) {
      return true;
    }
  }
  return false;
}

void Player::addItem(const int newItemId) {
  if (!hasItemId(newItemId) && (newItemId != 0)) { /// Uniquement si on ne possede pas encore l'Item
    Item nItem = ResourceLoader::extractItem(newItemId);
    this->listItem_.push_back(nItem);
  }
}

void Player::addItem(Item param)
{
  param = param;
}


std::string Player::consumeItem(int itemIdToRemove) {
  std::string res = "no match";

  /// Uniquement si on possede l'Item
  if (hasItemId(itemIdToRemove)) {
    for (unsigned int iItem = 0; iItem < listItem_.size(); iItem++) {
      if (listItem_[iItem].getId() == itemIdToRemove) {

        /// Pour effacer l'image dans l'inventaire on va cibler le QPushButton
        /// dont le tooltip a le nom de l'image
        res = listItem_[iItem].getName();
        listItem_.erase(listItem_.begin() + iItem);
      }
    }
  }
  return res;
}

void Player::addPastEvent(int idTxtEvt) {
  pastEvents_.push_back(idTxtEvt);
}
